/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.tomasio.projects.lua.api;

import com.tomasio.projects.lua.model.Application;
import com.tomasio.projects.lua.model.Group;
import com.tomasio.projects.lua.model.User;
import java.util.List;

/**
 *
 * @author fernandofot
 */
public interface MainService {

    public String createGroup(Group group);

    public void updateGroup(Group group);

    public void removeGroup(String groupUID);

    public List<Group> searchGroup(String term);

    public List<Group> listGroups();
    
    public List<Group> listGroups(String applicationUID);

    public Group findGroup(String groupUID);

    public String createUser(User user);

    public void updateUser(User user);

    public void removeUser(String userUID);

    public List<User> searchUsers(String term);

    public List<User> listUsers();

    public User findUser(String userUID);

    public String createApplication(Application application);

    public void updateApplication(Application application);

    public void removeApplication(String applicationUID);

    public List<Application> searchApplications(String term);

    public List<Application> listApplications();

    public Application findApplication(String applicationUID);
}
